// FinalizationRegistry: 监听某个对象被销毁
// WeakRef.prototype.deref:
// 如果原对象没有销毁，那么可以获取到原对象
// 如果已经销毁，那么获取到的就是undefined
const finalRegistry = new FinalizationRegistry((value) => {
  console.log("注册在finalRegistry的对象，某一个被销毁", value);
});

let obj = { name: "frank" };
let info = new WeakRef(obj);

finalRegistry.register(obj, "obj");

obj = null;

setTimeout(() => {
  console.log(info.deref()?.name);
}, 10000);
